/*
 * Copyright © 2021 http://www.hn-szzy.com/ All rights reserved.
 */
package com.xjh.utils.exception;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;

/**
 * @author： 徐建华
 * @date： 2021/12/28
 * @description：自定义异常类,继承exception
 */
@Data
public class SysException extends RuntimeException {
    private Integer code;

    /**
     * 通过状态码和错误消息创建异常对象
     *
     * @param message
     * @param code
     */
    public SysException(String message, Integer code) {
        //这里指的是继承的RuntimeException，所以message可以直接调用父类的
        super(message);
        this.code = code;
    }
    //理解枚举类起的作用，重写构造方法时，传入的参数可以是枚举类类型，这样以来抛出异常时就可以直接使用枚举类里的参数。
    // 这样就可以避免上面那种写法，这一种是更好的。
    // public SysException(CodeEnum codeEnum) {
    //    super(codeEnum.getDesc());
    //    this.code = codeEnum.getCode();
    //}

    @Override
    public String toString() {
        // 这里的code和this.getMessage() 都是抛出异常时自定义传入的参数
        return "SysException抛出的异常信息===={" +
                "code=" + code +
                ", message=" + this.getMessage() +
                '}';
    }
}
